/////////////////////////////////////////////////////////////////////////////
//
// NexgenIPL - Next Generation Image Processing Library
// Copyright (c) 1999-2002 Binary Technologies
// All Rights Reserved.
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed unmodified by any means PROVIDING it is 
// not sold for profit without the authors written consent, and 
// providing that this notice and the authors name is included. If 
// the source code in this file is used in any commercial application 
// then a simple email would be nice.
//
// THIS SOFTWARE IS PROVIDED BY BINARY TECHNOLOGIES ``AS IS'' AND ANY
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BINARY TECHNOLOGIES OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
// DAMAGE.
//
// Binary Technologies
// http://www.binary-technologies.com
// info@binary-technologies.com
//
/////////////////////////////////////////////////////////////////////////////

#ifndef BTCIMAGEDATAEX_INCLUDED
#define BTCIMAGEDATAEX_INCLUDED

#pragma once

#include "BTCImageData.h"

class BTCImageDataEx : public BTCImageData
{
public:
	BTCImageDataEx();
	BTCImageDataEx(const BTCImageData& ImageData);
	virtual ~BTCImageDataEx();

	BTCImageData& operator+=(BTCImageData& ImageData);
	BTCImageData& operator-=(BTCImageData& ImageData);
	BTCImageData& operator*=(BTCImageData& ImageData);
	BTCImageData& operator/=(BTCImageData& ImageData);
	BTCImageData& operator&=(BTCImageData& ImageData);
	BTCImageData& operator|=(BTCImageData& ImageData);

	BTRESULT Append(BTCImageData *pImage, long x, long y);
	BTRESULT RotateEx(double dAngle, const enum BTDirection& Direction = Right, BTCOLORREF colBackground = 0x00000000, bool bCrop = true);
};

#endif // BTCIMAGEDATAEX_INCLUDED
